1 .
2 . COSMIC ZAP
3 .
9 :RETURN ;NT=0;T=3;F=0;S=0;U=4;GOSUB 50;BC=200;FC=84;GOTO 80
10 FOR A=1TO 16STEP 4;IF @(A)=0NEXT A;RETURN 
11 BOX @(A+1),@(A+2),4,4,2;IF @(A+1) @(A+1)=@(A+1)+@(A+3)
12 IF @(A+2) @(A+2)=@(A+2)+@(A+3)
13 IF @(A+1)>0IF @(A+1)<21GOSUB 60
14 IF @(A+1)<0IF @(A+1)>-21GOSUB 60
15 IF @(A+2)>0IF @(A+2)<21GOSUB 60
16 IF @(A+2)<0IF @(A+2)>-21GOSUB 60
17 BOX @(A+1),@(A+2),4,4,1;NEXT A;RETURN 
20 FOR A=1TO 16STEP 4;IF @(A)NEXT A;RETURN 
21 B=RND (4);R=U+RND (3);@(A)=1;GOSUB 39+B;A=13;NEXT A;RETURN 
24 CY=32;CX=38;PRINT #5,L
26 CX=-70;CY=32;PRINT #5,S;CX=32;CY=40;PRINT "HI-SCORE";BOX 0,0,24,24,1;BOX 0,0,20,20,2;BOX 0,0,24,1,3; BOX 0,0,1,24,3
32 FOR A=-12TO 12STEP 24;FOR B=-12TO 12STEP 24;BOX A,B,4,4,3;NEXT B; NEXT A
33 CX=-70;CY=40;PRINT "SCORE:";CY=-39;CX=-70;PRINT "BASES:",#2,T;&(10)=180;RETURN 
40 @(A+1)=0;@(A+2)=40;@(A+3)=-R;RETURN 
41 @(A+1)=-50;@(A+2)=0;@(A+3)=R;RETURN 
42 @(A+1)=0;@(A+2)=-40;@(A+3)=R;RETURN 
43 @(A+1)=50;@(A+2)=0;@(A+3)=-R;RETURN 
50 FOR Z=1TO 16;@(Z)=0;NEXT Z;RETURN 
60 GOSUB 50;&(21)=50;&(23)=255
61 FOR Z=21TO -21STEP -3;LINE -Z,20,1;LINE Z,-20,1;LINE 20,Z,1;LINE -20,-Z,1;NEXT Z
63 &(21)=0;&(23)=0;F=1;RETURN 
64 U=5;I=9;IF S>950U=6
65 IF S>1950U=7;I=8
66 IF S>2950U=9
69 RETURN 
70 IF XBOX X×14,0,4,7,2;RETURN 
72 IF YBOX 0,Y×14,7,4,2;RETURN 
73 RETURN 
80 CLEAR ;&(10)=0;GOSUB 24;GOSUB 20
90 GOSUB 10;GOSUB 64;G=0
92 IF RND (I)=IGOSUB 20
93 IF S<1500G=1;FOR Z=1TO 2
95 J=JX(1);K=JY(1);IF JIF K J=0
96 IF (J)+(K)GOSUB 70;X=J;Y=K
100 IF XBOX X×14,0,4,7,1
110 IF YBOX 0,Y×14,7,4,1
140 IF (X)-(Y)IF TR(1)GOSUB 200
141 IF F F=0;GOTO 400
150 IF GNEXT Z
160 GOTO 90
200 FOR N=1TO 2;IF XBOX X×40,0,80,1,3
202 IF YBOX 0,Y×20,1,40,3
203 NT=3;MU="T";NT=0;NEXT N
210 IF YGOTO 250
220 FOR M=1TO 16STEP 4;IF @(M)=0NEXT M;RETURN 
222 IF @(M+2)=0IF @(M+1)<0IF X<0GOSUB 300
224 IF @(M+2)=0IF @(M+1)>0IF X>0GOSUB 300
226 NEXT M;RETURN 
250 FOR M=1TO 16STEP 4;IF @(M)=0NEXT M;RETURN 
252 IF @(M+1)=0IF @(M+2)<0IF Y<0GOSUB 300
254 IF @(M+1)=0IF @(M+2)>0IF Y>0GOSUB 300
256 NEXT M;RETURN 
300 S=S+50;BOX @(M+1),@(M+2),8,8,3;&(23)=255;&(21)=255;@(M)=0
310 CX=-70;CY=32;PRINT #5,S;BOX @(M+1),@(M+2),8,8,2;IF S=3000GOSUB 600
320 @(M+1)=0;@(M+2)=0;GOSUB 20;&(21)=0;&(23)=0;RETURN 
400 T=T-1;IF TGOSUB 50;GOTO 80
500 GOSUB 33;CY=0;CX=-23;PRINT "GAME OVER";IF S>L L=S;CY=32;CX=38;PRINT L
510 IF &(23)S=0;T=3;GOSUB 64;GOTO 80
520 GOTO 510
600 T=T+1;&(23)=0;&(21)=0;NT=5;FOR Q=1TO 10;MU="Q";NEXT Q;NT=0;GOSUB 33;RETURN 
